Three-dimensional (3D) depth scanning technology is becoming more commonly available for a variety of uses. In particular, consumer mobile 3D depth scanning, such as for indoor mapping, gesture recognition, and object scanning, is a rapidly proliferating technology space.
3D depth scanning utilizes a depth sensor to generate a depth map. For example, a 3D depth scanning system may comprise a depth camera having a sensor operable to capture depth, as opposed to sensing light as in a typical photographic image camera, to provide a depth map comprising pixels having units in depth. As a specific example, in an active sensing implementation of a 3D depth scanning system, a spatial mask comprising a known pattern (e.g., a mask having vertical stripes) is illuminated or projected onto a scene or 3D object, whereby the illumination pattern on the scene or on the 3D object typically encodes depth information for the scene or the 3D object. A receiver sensor captures an image of the scene or 3D object with the spatial mask projected thereon and the pattern or code within the spatial mask in the captured image is then used to ascertain a depth for the scene or object in the image. Based on patterns captured in an image of the scene, a depth map may be generated by the 3D depth scanning system that indicates different depths in the scene.
Depth maps produced by such 3D depth scanning systems are used to generate 3D point clouds. Each such point cloud comprises a set of data points in some coordinate system (e.g., points defined by X, Y, and Z coordinates) representing the external surfaces in a scene or 3D object. For surface reconstruction, a plurality of point clouds are aligned to a common coordinate frame in order to create a dense sampling of the scanned volume. For example, point clouds generated from a plurality of scans of the scene or 3D object, such as from different views or poses, are registered to common coordinate system and the registered point clouds are combined to create dense point cloud sets, such as for use in indoor mapping, gesture recognition, object scanning, etc.
Current solutions for point cloud registration require computationally intensive iterative methods, such as Iterative Closest Point or Polygonal Mesh. The convergence of these iterative schemes depends on small perturbations between successive scans and is also influenced by the initial condition. Further, the point clouds are typically very large data sets (e.g., millions of points). Accordingly, such computationally intensive techniques, requiring substantial processing to register high dimensional scans, are not readily implemented by a variety of processing platforms in use today, particularly the processing platforms provided by smartphones and tablet devices favored for use in consumer mobile 3D depth scanning.